﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL
{
    public partial class Etapa
    {
        
        public int getidAnterior(dbGestionDataContext _db, int idinternal,int idProyecto)
        {
            int intAnterior = 0;

            int c = _db.Etapas.Where(p => p.idInternal < idinternal & p.idProyecto == idProyecto).Count();
            if (c == 0)
            {
                throw new Exception("No existe Registros");
            }
            else
            {


                intAnterior = _db.Etapas.Where(a => a.idInternal < idinternal & a.idProyecto == idProyecto).Max(a => a.idInternal);

            }

            
            return intAnterior;

        }
        public int getidSiguiente(dbGestionDataContext _db, int idinternal,int idProyecto)
        {
            int intSiguiente = 0;

            //revisar la sentencia generada

            int c = _db.Etapas.Where(p => p.idInternal > idinternal & p.idProyecto == idProyecto).Count();

            if (c == 0)
            {
                throw new Exception("No existe Registros");
            }
            else
            {
                intSiguiente = _db.Etapas.Where(p => p.idInternal > idinternal & p.idProyecto == idProyecto).Min(a => a.idInternal);
            }

            return intSiguiente;
        }
        public bool SetAdd(dbGestionDataContext _db,
                           string descripcion,
                            int	idProyecto,
                            int idTipoProyecto,
                            string 	nombre,
                         
                            decimal	area,
                            int	plazoEntrega,
                            DateTime	fechaFin,
                            string	comentario,
                            bool	bitActivo,
                            int usuarioCre)
        {
           

                this.descripcion=descripcion;
                this.idProyectoTipo = idTipoProyecto;
                this.idProyecto=idProyecto;
                this.nombre=nombre;
                
                this.area=area;
                this.plazoEntrega=plazoEntrega;
                this.fechaFin=fechaFin;
                this.comentario=comentario;
                this.bitActivo=bitActivo;
                this.fechaCre=DateTime.Now;
                this.fechaMod=DateTime.Now;
                this.usuarioCre=usuarioCre;
                this.usuarioMod = usuarioCre;

            _db.Etapas.InsertOnSubmit(this);
           
            return true;

        }

        public bool Setupdate(string descripcion,
                            int idProyecto,
                            int idTipoProyecto,
                            string nombre,
                          
                            decimal area,
                            int plazoEntrega,
                            DateTime fechaFin,
                            string comentario,
                            bool bitActivo,
                            int usuarioMod)
        {
            this.descripcion = descripcion;
            this.idProyectoTipo = idTipoProyecto;
            this.idProyecto = idProyecto;
            this.nombre = nombre;
            this.area = area;
            this.plazoEntrega = plazoEntrega;
            this.fechaFin = fechaFin;
            this.comentario = comentario;
            this.bitActivo = bitActivo;
            this.fechaMod = DateTime.Now;
            this.usuarioMod = usuarioMod;
            
            return true;

        }

                                                            

      

       public void updatePlanoEtapa(int idArchivoPlano)
       {
           this.idArchivo = idArchivoPlano;
         
       }

    }                              
}
